home *** CD-ROM | disk | FTP | other *** search
- import java.awt.Color;
- import java.awt.Font;
- import java.awt.Graphics;
- import java.awt.Point;
- import java.awt.Toolkit;
- import java.util.NoSuchElementException;
- import java.util.StringTokenizer;
-
- class CListBox {
- private int m_nFlags;
- private CRect m_rcDraw;
- private Font m_Font;
- private Color m_rgbFg;
- private Color m_rgbBg;
- private int m_nLineHeight;
- private CIntArray m_nSelections;
- private CStringArray m_strListText;
- private boolean m_bHasFocus;
-
- public void SetRect(CRect var1) {
- this.m_rcDraw.reshape(var1);
- }
-
- private void AddSelection(int var1) {
- int var2;
- for(var2 = 0; this.m_nSelections.GetAt(var2) < var1 && var2 < this.m_nSelections.GetSize(); ++var2) {
- }
-
- this.m_nSelections.InsertAt(var2, var1);
- }
-
- public void DrawControl() {
- this.DrawControl(Globals.thePresView.GetDC(), this.m_rcDraw);
- }
-
- public void DrawControl(Graphics var1, CRect var2) {
- if (var1 == null) {
- var1 = Globals.thePresView.GetDC();
- }
-
- if (var2 == null) {
- var2 = this.m_rcDraw;
- }
-
- if (var1 != null && var2 != null) {
- Graphics var3 = var1.create();
- var3.clipRect(var2.x, var2.y, var2.width, var2.height);
- var3.setColor(this.m_rgbBg);
- var3.fillRect(var2.x, var2.y, var2.width, var2.height);
- if ((this.m_nFlags & 16) != 0) {
- var3.setColor(Color.black);
- var3.drawRect(var2.x, var2.y, var2.width - 1, var2.height - 1);
- var3.clipRect(var2.x + 1, var2.y + 1, var2.width - 2, var2.height - 2);
- }
-
- var3.setColor(this.m_rgbFg);
- var3.setFont(this.m_Font);
- this.m_nLineHeight = var3.getFontMetrics().getHeight();
- int var4 = var3.getFontMetrics().getAscent();
-
- for(int var5 = 0; var5 < this.m_strListText.GetSize(); ++var5) {
- var3.drawString(this.m_strListText.GetAt(var5), var2.x + 5, var2.y + var4 + var5 * this.m_nLineHeight);
- }
-
- var3.setXORMode(Color.white);
- var3.setColor(Color.black);
-
- for(int var6 = 0; var6 < this.m_nSelections.GetSize(); ++var6) {
- var3.fillRect(var2.x, var2.y + this.m_nSelections.GetAt(var6) * this.m_nLineHeight, var2.width, this.m_nLineHeight);
- }
- }
-
- }
-
- public int GetSelCount() {
- return this.m_nSelections.GetSize();
- }
-
- public boolean FindItem(String var1) {
- if (var1 != null && var1.length() > 0) {
- for(int var2 = 0; var2 < this.m_strListText.GetSize(); ++var2) {
- if (this.m_strListText.GetAt(var2).equals(var1)) {
- return true;
- }
- }
- }
-
- return false;
- }
-
- public boolean ProcessMouseUp(Point var1) {
- this.m_bHasFocus = false;
- return false;
- }
-
- public boolean HasFocus() {
- return this.m_bHasFocus;
- }
-
- CListBox(int var1, CRect var2) {
- this.m_nFlags = var1;
- this.m_rcDraw = var2;
- this.m_Font = new Font("Helvetica", 0, 20);
- this.m_rgbFg = new Color(0, 0, 0);
- this.m_rgbBg = new Color(255, 255, 255);
- this.m_nLineHeight = Toolkit.getDefaultToolkit().getFontMetrics(this.m_Font).getHeight();
- this.m_nSelections = new CIntArray();
- this.m_strListText = new CStringArray();
- this.m_bHasFocus = false;
- }
-
- public void SetBgColour(Color var1) {
- this.m_rgbBg = var1;
- }
-
- public void SetFgColour(Color var1) {
- this.m_rgbFg = var1;
- }
-
- public boolean ProcessMouseDown(Point var1) {
- this.m_bHasFocus = true;
- int var2 = (var1.y - this.m_rcDraw.y) / this.m_nLineHeight;
- if (var2 >= 0 && var2 < this.m_strListText.GetSize()) {
- if ((this.m_nFlags & 8) != 0 && this.m_nSelections.GetSize() > 0) {
- for(int var3 = 0; var3 < this.m_nSelections.GetSize(); ++var3) {
- if (var2 == this.m_nSelections.GetAt(var3)) {
- this.m_nSelections.RemoveAt(var3);
- break;
- }
-
- if (var3 == this.m_nSelections.GetSize() - 1) {
- this.AddSelection(var2);
- break;
- }
- }
-
- this.DrawControl();
- } else if (this.m_nSelections.GetAt(0) != var2) {
- this.m_nSelections.SetAtGrow(0, var2);
- this.DrawControl();
- }
- }
-
- return false;
- }
-
- public String SetSelections(String var1, String var2) {
- String var3 = "";
- boolean var4 = false;
- String var5 = "";
- var2 = var2.length() > 0 ? var2 : "\r\n";
- this.m_nSelections.RemoveAll();
- if (var1.length() > 0) {
- StringTokenizer var6 = new StringTokenizer(var1, var2);
-
- while(var6.hasMoreTokens()) {
- var3 = var6.nextToken();
-
- for(int var9 = 0; var9 < this.m_strListText.GetSize(); ++var9) {
- if (var3.toLowerCase().equals(this.m_strListText.GetAt(var9).toLowerCase())) {
- if ((this.m_nFlags & 8) == 0) {
- this.m_nSelections.SetAtGrow(0, var9);
- var5 = this.m_strListText.GetAt(var9);
- } else {
- this.AddSelection(var9);
- }
- break;
- }
- }
- }
- }
-
- return var5;
- }
-
- public void SetFont(Font var1) {
- this.m_Font = var1;
- this.m_nLineHeight = Toolkit.getDefaultToolkit().getFontMetrics(this.m_Font).getHeight();
- }
-
- public String GetSel() {
- return this.m_strListText.GetAt(this.m_nSelections.GetAt(0));
- }
-
- public String GetSel(int var1) {
- return this.m_strListText.GetAt(this.m_nSelections.GetAt(var1));
- }
-
- public int FillListBox(String var1, String var2) {
- String var3 = "";
- int var4 = 0;
- var2 = var2.length() > 0 ? var2 : "\r\n";
- this.m_strListText.RemoveAll();
- if (var1.length() > 0) {
- for(StringTokenizer var5 = new StringTokenizer(var1, var2); var5.hasMoreTokens(); ++var4) {
- try {
- var3 = var5.nextToken();
- } catch (NoSuchElementException var6) {
- }
-
- if ((this.m_nFlags & 4) != 0) {
- for(var4 = 0; this.m_strListText.GetAt(var4).toLowerCase().compareTo(var3.toLowerCase()) < 0 && var4 < this.m_strListText.GetSize(); ++var4) {
- }
- }
-
- this.m_strListText.InsertAt(var4, var3);
- }
- }
-
- return this.m_strListText.GetSize() * this.m_nLineHeight;
- }
-
- public boolean ProcessMouseMove(Point var1) {
- int var2 = (var1.y - this.m_rcDraw.y) / this.m_nLineHeight;
- if (var2 >= 0 && var2 < this.m_strListText.GetSize() && var2 != this.m_nSelections.GetAt(0)) {
- this.m_nSelections.SetAtGrow(0, var2);
- this.DrawControl();
- }
-
- return false;
- }
- }
-